
package com.itheima;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.function.Consumer;
/*
接口可以有什么方法
1.抽象方法
2.静态方法（关键：static）大写的一般是静态对象
3.默认方法（关键：defult）
4.私有方法(private)

try后面必须跟东西：catch/finally
throws用于声明抛出的异常 throw用于抛出异常
List接口中的元素有序、可重复
Set接口中的元素无序、不可重复
Map接口中的元素无序、可重复


构造函数：ArrayList()

添加元素：add(E e)
获取元素：get(int index)
获取元素个数：size()
删除元素：remove(int index)
修改元素：set(int index,E element)
查找元素：indexOf(Object o)
判断是否包含元素：contains(Object obj)




遍历：for循环，迭代器，增强for循环

 */

public class ArrayListDemo {
    public static void main(String[] args) {
        //1.创建ArrayList对象
        //底层赋值了一个空数组
        ArrayList<String> list = new ArrayList<>();
        //2.往ArrayList集合中添加数据
        list.add("zhangsan");//添加一个数据，在数组的尾部
        list.add(0,"list");//添加一个数据，在数组的指定位置上添加数据，如果位置有数据，那么原数据被覆盖
        //获取数据
        String s = list.get(1);
        System.out.println(s);
        //修改数据
        list.set(0,"wangwu");
        list.remove(1);

        list.add("lisi");
        list.add("lisi");
        list.add("lisi");
        list.add("lisi");
        list.add("lisi");

        System.out.println(list);
        System.out.println("---------------------------集合的遍历方法1----------------------------------");
        //1.for循环的形式
        for (int i = 0; i < list.size(); i++) {
            String obj = list.get(i);
            System.out.println(obj);
        }
        System.out.println("---------------------------集合的遍历方法2----------------------------------");
        //2.增强for循环的形式
        for (String obj : list){






            System.out.println(obj);
        }
        //3.迭代器的形式
        System.out.println("---------------------------迭代器的形式----------------------------------");
        //获取迭代器的对象
        Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
        //4.Lambda表达式的形式(->)
        System.out.println("---------------------------集合的遍历方法4----------------------------------");
        //Lambda表达式本质是一个函数
//        Consumer<String> consumer = ;

//        list.forEach(str-> System.out.println(str));
        list.forEach(System.out::println);

    }
}